package com.siwuxie095.functional.chapter10th.example1st;

/**
 * @author Jiajing Li
 * @date 2020-10-31 10:13:15
 */
public class Main {

    /**
     * 下一步该怎么办
     *
     * Java 作为一门语言，在很多方面都经受住了时间的考验。它仍然是非常受欢迎的平台，选用 Java 开发企业级应用是个不错的选择。
     * 人们开发了大量的开源类库和框架，解决各种各样的问题：从编写模块化且复杂的网络应用（Spring 框架）到正确地计算日期和时间
     * （Joda-Time 类库）。开发工具更是无可比拟，集成开发环境有 Eclipse 和 Intellij，构建系统有 Gradle 和 Maven。
     *
     * 问题在于，多年来，Java 没有紧跟时代向前演进，落得个保守的坏名声。之所以如此，部分原因也在于它流行的时间太长。亲不尊，
     * 熟生蔑，它太为人所熟悉反而容易被轻慢。当然，Java 的发展也的确存在问题。保持向后兼容的决策，尽管有所裨益，却太过复杂。
     *
     * 所幸，Java 8 的出现是一个积极的信号，它不仅是对语言本身的一小步改善，也是在 Java 开发方面迈出的一大步。和 Java 6、
     * Java 7 不同，Java 8 不再是一些无足轻重的对类库的改良，以后的版本也该沿袭 Java 8 的传统，大踏步前进。
     *
     * 至此，已接近尾声，但希望学习和使用 Java 8 的脚步不会停留在此。总体来说，这里描述了各种使用 Lambda 表达式的方式：更好
     * 的集合类代码、数据并行处理、更简洁干净的代码、并发。并阐释了为什么使用 Lambda 表达式、Lambda 表达式是什么，以及怎么用
     * Lambda 表达式，但一切还在于如何真正将其应用于实践。本着这种精神，这里给出一些开放性的练习，没有标准答案，理解这些问题
     * 能够指导接下来的学习过程。
     *
     * （1）向其他程序员（朋友或同事）解释什么是 Lambda 表达式，为什么会对它产生兴趣。
     * （2）尝试将目前从事的项目部署到 Java 8 环境下。如果现有单元测试已经能运行在持续集成系统 Jenkins 下，那么在多个版本的
     * Java 上构建程序也易如反掌。
     * （3）使用新的 Stream 和 Collector，开始重构真实产品中的遗留代码。它既可以是感兴趣的开放源码项目，也可以是当前从事的
     * 项目，前提是第一步里已经部署成功一个测试环境。如果还没准备好大规模迁往 Java 8，那么在分支上使用 Java 8 做一些原型会是
     * 个不错的开始。
     * （4）有没有一些大规模处理数据的代码？或者代码中存在并发问题？试着使用 Stream 处理数据，或使用 RxJava 中新的并发特性，
     * 也可以使用 CompletableFuture 类，来重构代码。
     *
     *
     * 选择一个熟悉的代码库，分析它的设计和架构。
     *
     * （1）从宏观上看，有没有更好的实现方法？
     * （2）能否简化设计？
     * （3）能否减少实现某功能所需的代码量？
     * （4）怎样让代码更易读？
     */
    public static void main(String[] args) {

    }

}
